Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

162
Visualizações
Haga coincidir una línea con un carácter [, pero no coincida si tiene un carácter]

Pensé que esta expresión regular coincidiría con líneas con [ , pero no si tiene ] :

 ^.*\[.*(?!\]).*$

En cambio, hace coincidir cada línea con un [ (mostrado en negrita ):

Esto [debe coincidir]. Esta línea debe coincidir

Esta línea no debería coincidir.

Esta línea no debería coincidir. Esta línea [no debe coincidir.

¿Cómo arreglar esa expresión regular para que no coincida con las líneas que tienen un ] ?

Esto [debe coincidir]. Esta línea debe coincidir

Esta línea no debería coincidir.

Esta línea no debería coincidir. Esta línea [no debe coincidir.

Demostración: https://regexr.com/67qk7

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Este patrón ^.*\[.*(?!\]).*$ coincide con [ y el siguiente .* coincidirá con el resto de la línea.

Luego, al final de la línea, afirmará no ] directamente a la derecha, lo cual es cierto porque ya está al final de la línea. Entonces el .* es opcional y puede afirmar el final de la cadena.

Por lo tanto, coincidirá con cualquier línea completa que tenga al menos un solo [

Si desea hacer coincidir pares de corchetes de apertura hasta cierre [...] y no permitir ningún corchete dentro de él, o corchetes individuales fuera de él y hacer coincidir al menos un solo par, puede repetir 1 o más veces emparejando pares rodeados por caracteres opcionales que no sean corchetes.

 ^(?:[^\][\n]*\[[^\][\n]*\])+[^\][\n]*$

Demostración de expresiones regulares

about 4 years ago · Juan Pablo Isaza Relatório

0

Una solución alternativa que no es súper eficiente pero es un poco más corta:

 ^(?!.*\[[^\]\n]*$)[^[\n]*\[.+$

Demostración RegEx

Explicación:

  • (?!.*\[[^\]\n]*$) falla la coincidencia si obtenemos un [ sin cierre ] en cualquier lugar
  • [^[\n]*\[ coincide primero con [ en una línea
about 4 years ago · Juan Pablo Isaza Relatório

0

"Esta expresión regular coincidiría con líneas con un [" (uno o más), "pero no si tiene un ]" (uno o más):

 ^[^\][\n]*\[[^\]\n]*$

Captura de pantalla de Regex101

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda